Skip to content

OSDOCS-20558: adds MCP multi-protocol support - #118534

Open
ShaunaDiaz wants to merge 1 commit into
openshift:rhcl-docs-mainfrom
ShaunaDiaz:OSDOCS-20558
Open

OSDOCS-20558: adds MCP multi-protocol support#118534
ShaunaDiaz wants to merge 1 commit into
openshift:rhcl-docs-mainfrom
ShaunaDiaz:OSDOCS-20558

Conversation

@ShaunaDiaz

@ShaunaDiaz ShaunaDiaz commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Version(s):
rhcl-docs-1.5

Issue:
OSDOCS-20558

Link to docs preview:
https://118534--ocpdocs-pr.netlify.app/rhcl/latest/mcp_gateway_config/mcp-gateway-multi-protocol-support.html

QE review:

  • QE has approved this change.

Additional information:
Release note PR, #118615

@openshift-ci-robot

openshift-ci-robot commented Aug 20, 2026

Copy link
Copy Markdown

@ShaunaDiaz: This pull request references OSDOCS-20558 which is a valid jira issue.

Details

In response to this:

Version(s):
rhcl-docs-1.5

Issue:
OSDOCS-20558

Link to docs preview:

QE review:

  • QE has approved this change.

Additional information:

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Aug 20, 2026
@ShaunaDiaz ShaunaDiaz added the rhcl-docs-1.5 label for PRs that need to go into Red Hat Connectivity Link 1.5 documentation label Aug 20, 2026
@openshift-ci openshift-ci Bot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Aug 20, 2026
@ocpdocs-previewbot

ocpdocs-previewbot commented Aug 20, 2026

Copy link
Copy Markdown

🤖 Fri Aug 21 12:21:17 - Prow CI generated the docs preview:

https://118534--ocpdocs-pr.netlify.app/rhcl/latest/mcp_gateway_config/mcp-gateway-multi-protocol-support.html

@openshift-ci

openshift-ci Bot commented Aug 21, 2026

Copy link
Copy Markdown

@ShaunaDiaz: all tests passed!

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.


The new stateless protocol has the following cloud-native pattern:

* Round-robin load balancing: Because any container instance can handle any incoming request, you can horizontally scale your stateful MCP servers behind a plain round-robin load balancer.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Round-robin load balancing: Because any container instance can handle any incoming request, you can horizontally scale your stateful MCP servers behind a plain round-robin load balancer.
* Round-robin load balancing: Because any container instance can handle any incoming request, you can horizontally scale your stateless MCP servers behind a plain round-robin load balancer.

== How version detection works

When an MCP client SDK connects, the {mcpg} detects the MCP protocol version by using the following sequence:
//Q: is this really just an MCP client?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes the client is used by agents etc to interact with MCP servers

|===

[id="con-mcp-gateway-multi-protocol-tool-visibility_{context}"]
== Tool visibility by protocol version

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just to note that a some MCP servers can support both protocols. So the below is still true but might be an interesting thing to add in that the gateway can front servers that support both stateless and stateful protocols and due to the negotiation show the compatible tools to the client

= Set MCP protocol-specific routes

[role="_abstract"]
The {mcpg} exposes two endpoints on every Model Context Protocol (MCP) listener. You can use the default endpoint for automatic version negotiation, or the stateful endpoint to force the `2025-11-25` protocol version.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah the /stateful endpoint is there to allow for the fact there may be different tools based on the protocol and the current state of the MCP Servers behind the gateway. This allows for 2026 protocol negotiation but if there is something you still need to use 2025 for you can set up a second "MCP Server" config that points at the gateways /stateful endpoint. From a client perspective it thinks there are two distinct MCP servers but actually they both are going to the same gateway.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tbh this is covered below 👍

"2026-07-28"
]
----
//Q: what if it accepts only the older version? No newline at end of file

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it will still show the result but will only show 2025-11-25 as being available


|Routing
|Body-parsed: JSON-RPC method and parameters
|Header-based: `Mcp-Method`, `Mcp-Name`

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

note we do need to parse and transform the body if there is a prefix used as we need to strip this from the tool call

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. rhcl-docs-1.5 label for PRs that need to go into Red Hat Connectivity Link 1.5 documentation size/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants